package com.mlh.array;

//给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
//元素不重复  如果元素重复返回的下标会不一致  但是实际应用中  重复是可以利用二分查找算法的
public class BinarySearch {
    public int method1(int[] nums, int target) {
        //不变量：定义区间  左闭右闭  来源：代码随想录
        int left=0;
        int right=nums.length-1;
        while(left<=right){
            int mid=(left+right)/2;
            if(nums[mid]==target){
                return mid;
            }else if(nums[mid]>target){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return -1;
    }
}
